<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>tango.util.log.Log</title>
  <link href="./css/style.css" rel="stylesheet" type="text/css"/>
  <!-- <link href="./img/icon.png" rel="icon" type="image/png"/> -->
  <script type="text/javascript" src="./js/jquery.js"></script>
  <script type="text/javascript" src="./js/modules.js"></script>
  <script type="text/javascript" src="./js/quicksearch.js"></script>
  <script type="text/javascript" src="./js/navigation.js"></script>
  <!--<script type="text/javascript" src="./js/jquery.treeview.js"></script>-->
  <script type="text/javascript">
    var g_moduleFQN = "tango.util.log.Log";
  </script>
  
</head>
<body>
<div id="content">
  <h1><a href="./htmlsrc/tango.util.log.Log.html" class="symbol">tango.util.log.Log</a></h1>
  
<p class="sec_header">License:</p>BSD style: see <a href="http://www.dsource.org/projects/tango/wiki/LibraryLicense">license.txt</a>
<p class="sec_header">Version:</p>May 2004 : Initial release
<p class="sec_header">Version:</p>Oct 2004: Hierarchy moved due to circular dependencies
<p class="sec_header">Version:</p>Apr 2008: Lazy delegates removed due to awkward usage
<p class="sec_header">Author:</p>Kris
<p class="bl"/>

        Loggers are named entities, sometimes shared, sometimes specific to 
        a particular portion of code. The names are generally hierarchical in 
        nature, using dot notation (with '.') to separate each named section. 
        For example, a typical name might be something like "mail.send.writer"
        <pre class="d_code">
<span class="k">import</span> <span class="i">tango</span>.<span class="i">util</span>.<span class="i">log</span>.<span class="i">Log</span>;<span class="i">format</span>

<span class="k">auto</span> <span class="i">log</span> = <span class="i">Log</span>.<span class="i">lookup</span> (<span class="sl">"mail.send.writer"</span>);

<span class="i">log</span>.<span class="i">info</span>  (<span class="sl">"an informational message"</span>);
<span class="i">log</span>.<span class="i">error</span> (<span class="sl">"an exception message: {}"</span>, <span class="i">exception</span>.<span class="i">toString</span>);

<span class="i">etc</span> ...
</pre>
        
        It is considered good form to pass a logger instance as a function or 
        class-ctor argument, or to assign a new logger instance during static 
        class construction. For example: if it were considered appropriate to 
        have one logger instance per class, each might be constructed like so:
        <pre class="d_code">
<span class="k">private</span> <span class="i">Logger</span> <span class="i">log</span>;

<span class="k">static</span> <span class="k">this</span>()
{
    <span class="i">log</span> = <span class="i">Log</span>.<span class="i">lookup</span> (<span class="i">nameOfThisClassOrStructOrModule</span>);
}
</pre>
<p class="bl"/>
        Messages passed to a Logger are assumed to be either self-contained
        or configured with "{}" notation a la Layout &amp; Stdout:
        <pre class="d_code">
<span class="i">log</span>.<span class="i">warn</span> (<span class="sl">"temperature is {} degrees!"</span>, <span class="n">101</span>);
</pre>
<p class="bl"/>
        Note that an internal workspace is used to format the message, which
        is limited to 2000 bytes. Use "{.256}" truncation notation to limit
        the size of individual message components, or use explicit formatting:
        <pre class="d_code">
<span class="k">char</span>[<span class="n">4096</span>] <span class="i">buf</span> = <span class="k">void</span>;

<span class="i">log</span>.<span class="i">warn</span> (<span class="i">log</span>.<span class="i">format</span> (<span class="i">buf</span>, <span class="sl">"a very long warning: {}"</span>, <span class="i">someLongWarning</span>));
</pre>
<p class="bl"/>
        To avoid overhead when constructing argument passed to formatted 
        messages, you should check to see whether a logger is active or not:
        <pre class="d_code">
<span class="k">if</span> (<span class="i">log</span>.<span class="i">enabled</span> (<span class="i">log</span>.<span class="i">Level</span>.<span class="i">Warn</span>))
    <span class="i">log</span>.<span class="i">warn</span> (<span class="sl">"temperature is {} degrees!"</span>, <span class="i">complexFunction</span>());
</pre>
        
        The above will be handled implicitly by the logging system when 
        macros are added to the language (used to be handled implicitly 
        via lazy delegates, but usage of those turned out to be awkward).
<p class="bl"/>
        tango.log closely follows both the API and the behaviour as documented 
        at the official Log4J site, where you'll find a good tutorial. Those 
        pages are hosted over 
        <A HREF="http://logging.apache.org/log4j/docs/documentation.html">here</A>.
<dl>
<dt class="decl">alias ILogger.Level <a class="symbol _alias" name="Level" href="./htmlsrc/tango.util.log.Log.html#L131" kind="alias" beg="131" end="131">Level</a>; <a title="Permalink to this symbol" href="#Level" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L131">#</a></dt>
<dd class="ddef">
<div class="summary">These represent the standard LOG4J event levels. Note that
        Debug is called Trace here, because debug is a reserved word
        in D</div></dd>
<dt class="decl">struct <a class="symbol _struct" name="Log" href="./htmlsrc/tango.util.log.Log.html#L143" kind="struct" beg="143" end="348">Log</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Log" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L143">#</a></dt>
<dd class="ddef">
<div class="summary">Manager for routing Logger calls to the default hierarchy. Note 
        that you may have multiple hierarchies per application, but must
        access the hierarchy directly for getRootLogger() and getLogger()
        methods within each additional instance.</div>
<dl>
<dt class="decl">static <a class="symbol _sctor" name="Log.this" href="./htmlsrc/tango.util.log.Log.html#L196" kind="sctor" beg="196" end="219">this</a>(); <a title="Permalink to this symbol" href="#Log.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L196">#</a></dt>
<dd class="ddef">
<div class="summary">Initialize the base hierarchy</div></dd>
<dt class="decl">Level <a class="symbol _function" name="Log.convert" href="./htmlsrc/tango.util.log.Log.html#L227" kind="function" beg="227" end="233">convert</a><span class="params">(char[] <em>name</em>, Level <em>def</em> = Level.Trace)</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.convert" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L227">#</a></dt>
<dd class="ddef">
<div class="summary">Return the level of a given name</div></dd>
<dt class="decl">Time <a class="symbol _function" name="Log.time" href="./htmlsrc/tango.util.log.Log.html#L241" kind="function" beg="241" end="255">time</a><span class="params">()</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.time" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L241">#</a></dt>
<dd class="ddef">
<div class="summary">Return the current time</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Log.root" href="./htmlsrc/tango.util.log.Log.html#L266" kind="function" beg="266" end="269">root</a><span class="params">()</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.root" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L266">#</a></dt>
<dd class="ddef">
<div class="summary">Return the root Logger instance. This is the ancestor of
                all loggers and, as such, can be used to manipulate the 
                entire hierarchy. For instance, setting the root 'level' 
                attribute will affect all other loggers in the tree.</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Log.lookup" href="./htmlsrc/tango.util.log.Log.html#L285" kind="function" beg="285" end="288">lookup</a><span class="params">(char[] <em>name</em>)</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.lookup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L285">#</a></dt>
<dd class="ddef">
<div class="summary">Return an instance of the named logger. Names should be
                hierarchical in nature, using dot notation (with '.') to 
                separate each name section. For example, a typical name 
                might be something like "tango.io.Buffer".</div>
If the logger does not currently exist, it is created and
                inserted into the hierarchy. A parent will be attached to
                it, which will be either the root logger or the closest
                ancestor in terms of the hierarchical name space.</dd>
<dt class="decl">char[] <a class="symbol _function" name="Log.convert:2" href="./htmlsrc/tango.util.log.Log.html#L296" kind="function" beg="296" end="300">convert</a><span class="params">(int <em>level</em>)</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.convert:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L296">#</a></dt>
<dd class="ddef">
<div class="summary">Return text name for a log level</div></dd>
<dt class="decl">Hierarchy <a class="symbol _function" name="Log.hierarchy" href="./htmlsrc/tango.util.log.Log.html#L308" kind="function" beg="308" end="311">hierarchy</a><span class="params">()</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.hierarchy" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L308">#</a></dt>
<dd class="ddef">
<div class="summary">Return the singleton hierarchy.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Log.config" href="./htmlsrc/tango.util.log.Log.html#L322" kind="function" beg="322" end="325">config</a><span class="params">(OutputStream <em>stream</em>, bool <em>flush</em> = true)</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.config" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L322">#</a></dt>
<dd class="ddef">
<div class="summary">Initialize the behaviour of a basic logging hierarchy.</div>
Adds a StreamAppender to the root node, and sets
                the activity level to be everything enabled.</dd>
<dt class="decl">Snapshot <a class="symbol _function" name="Log.snapshot" href="./htmlsrc/tango.util.log.Log.html#L334" kind="function" beg="334" end="347">snapshot</a><span class="params">(Logger <em>owner</em>, Level <em>level</em>, char[] <em>buffer</em> = null)</span>; <span class="attrs">[<span class="prot">private</span>, <span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#Log.snapshot" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L334">#</a></dt>
<dd class="ddef">
<div class="summary">Initialize a snapshot for a specific logging level, and 
                with an optional buffer. Default buffer size is 1024</div></dd></dl></dd>
<dt class="decl">struct <a class="symbol _struct" name="Snapshot" href="./htmlsrc/tango.util.log.Log.html#L379" kind="struct" beg="379" end="428">Snapshot</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Snapshot" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L379">#</a></dt>
<dd class="ddef">
<div class="summary">Snapshot support for use with existing log instances. The behaviour 
        is different from traditional logging in that snapshots don't emit any 
        output until flushed. They gather up information in a temporary buffer 
        and emit that instead - this can be used to gather up a series of log 
        snippets into one place. Typical usage is like so:
        <pre class="d_code">
<span class="k">auto</span> <span class="i">snap</span> = <span class="i">Log</span>.<span class="i">snapshot</span> (<span class="i">log</span>, <span class="i">Level</span>.<span class="i">Info</span>);
...
<span class="i">snap</span>.<span class="i">format</span> (<span class="sl">"{}; "</span>, <span class="sl">"first"</span>);
...
<span class="i">snap</span>.<span class="i">format</span> (<span class="sl">"{}; "</span>, <span class="sl">"second"</span>);
...
<span class="i">snap</span>.<span class="i">flush</span>;
</pre>
        
        Setting a larger buffer size than the default:
        <pre class="d_code">
<span class="k">char</span>[<span class="n">4096</span>] <span class="i">buf</span> = <span class="k">void</span>;
<span class="k">auto</span> <span class="i">snap</span> = <span class="i">Log</span>.<span class="i">snapshot</span> (<span class="i">log</span>, <span class="i">Level</span>.<span class="i">Info</span>, <span class="i">buf</span>);
...
</pre>
        
        Note that this is a struct, and is constructed on the stack</div>
<dl>
<dt class="decl">bool <a class="symbol _function" name="Snapshot.enabled" href="./htmlsrc/tango.util.log.Log.html#L395" kind="function" beg="395" end="398">enabled</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#Snapshot.enabled" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L395">#</a></dt>
<dd class="ddef">
<div class="summary">See if this Snapshot is enabled via the associated logger. If
                that logger is set to a level less verbose than our snapshot, 
                we are considered disabled.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Snapshot.format" href="./htmlsrc/tango.util.log.Log.html#L407" kind="function" beg="407" end="414">format</a><span class="params">(char[] <em>formatStr</em>, ...)</span>; <a title="Permalink to this symbol" href="#Snapshot.format" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L407">#</a></dt>
<dd class="ddef">
<div class="summary">Append formatted text to the snapshot. Nothing is emitted 
                until flush is invoked.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Snapshot.flush" href="./htmlsrc/tango.util.log.Log.html#L422" kind="function" beg="422" end="427">flush</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#Snapshot.flush" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L422">#</a></dt>
<dd class="ddef">
<div class="summary">Must be invoked to generate any output</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Logger" href="./htmlsrc/tango.util.log.Log.html#L494" kind="class" beg="494" end="923">Logger</a> : ILogger; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Logger" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L494">#</a></dt>
<dd class="ddef">
<div class="summary">Loggers are named entities, sometimes shared, sometimes specific to 
        a particular portion of code. The names are generally hierarchical in 
        nature, using dot notation (with '.') to separate each named section. 
        For example, a typical name might be something like "mail.send.writer"
        <pre class="d_code">
<span class="k">import</span> <span class="i">tango</span>.<span class="i">util</span>.<span class="i">log</span>.<span class="i">Log</span>;<span class="i">format</span>

<span class="k">auto</span> <span class="i">log</span> = <span class="i">Log</span>.<span class="i">lookup</span> (<span class="sl">"mail.send.writer"</span>);

<span class="i">log</span>.<span class="i">info</span>  (<span class="sl">"an informational message"</span>);
<span class="i">log</span>.<span class="i">error</span> (<span class="sl">"an exception message: {}"</span>, <span class="i">exception</span>.<span class="i">toString</span>);

<span class="i">etc</span> ...
</pre>
        
        It is considered good form to pass a logger instance as a function or 
        class-ctor argument, or to assign a new logger instance during static 
        class construction. For example: if it were considered appropriate to 
        have one logger instance per class, each might be constructed like so:
        <pre class="d_code">
<span class="k">private</span> <span class="i">Logger</span> <span class="i">log</span>;

<span class="k">static</span> <span class="k">this</span>()
{
    <span class="i">log</span> = <span class="i">Log</span>.<span class="i">lookup</span> (<span class="i">nameOfThisClassOrStructOrModule</span>);
}
</pre></div>
Messages passed to a Logger are assumed to be either self-contained
        or configured with "{}" notation a la Layout &amp; Stdout:
        <pre class="d_code">
<span class="i">log</span>.<span class="i">warn</span> (<span class="sl">"temperature is {} degrees!"</span>, <span class="n">101</span>);
</pre>
<p class="bl"/>
        Note that an internal workspace is used to format the message, which
        is limited to 2000 bytes. Use "{.256}" truncation notation to limit
        the size of individual message components, or use explicit formatting:
        <pre class="d_code">
<span class="k">char</span>[<span class="n">4096</span>] <span class="i">buf</span> = <span class="k">void</span>;

<span class="i">log</span>.<span class="i">warn</span> (<span class="i">log</span>.<span class="i">format</span> (<span class="i">buf</span>, <span class="sl">"a very long warning: {}"</span>, <span class="i">someLongWarning</span>));
</pre>
<p class="bl"/>
        To avoid overhead when constructing argument passed to formatted 
        messages, you should check to see whether a logger is active or not:
        <pre class="d_code">
<span class="k">if</span> (<span class="i">log</span>.<span class="i">enabled</span> (<span class="i">log</span>.<span class="i">Level</span>.<span class="i">Warn</span>))
    <span class="i">log</span>.<span class="i">warn</span> (<span class="sl">"temperature is {} degrees!"</span>, <span class="i">complexFunction</span>());
</pre>
        
        The above will be handled implicitly by the logging system when 
        macros are added to the language (used to be handled implicitly 
        via lazy delegates, but usage of those turned out to be awkward).
<p class="bl"/>
        tango.log closely follows both the API and the behaviour as documented 
        at the official Log4J site, where you'll find a good tutorial. Those 
        pages are hosted over 
        <A HREF="http://logging.apache.org/log4j/docs/documentation.html">here</A>.
<dl>
<dt class="decl">interface <a class="symbol _interface" name="Logger.Context" href="./htmlsrc/tango.util.log.Log.html#L513" kind="interface" beg="513" end="522">Context</a>; <a title="Permalink to this symbol" href="#Logger.Context" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L513">#</a></dt>
<dd class="ddef">
<div class="summary">Context for a hierarchy, used for customizing behaviour
                of log hierarchies. You can use this to implement dynamic
                log-levels, based upon filtering or some other mechanism</div>
<dl>
<dt class="decl">char[] <a class="symbol _function" name="Logger.Context.label" href="./htmlsrc/tango.util.log.Log.html#L516" kind="function" beg="516" end="516">label</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#Logger.Context.label" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L516">#</a></dt>
<dd class="ddef">
<div class="summary">return a label for this context</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Logger.Context.enabled" href="./htmlsrc/tango.util.log.Log.html#L521" kind="function" beg="521" end="521">enabled</a><span class="params">(Level <em>setting</em>, Level <em>target</em>)</span>; <a title="Permalink to this symbol" href="#Logger.Context.enabled" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L521">#</a></dt>
<dd class="ddef">
<div class="summary">first arg is the setting of the logger itself, and
 the second arg is what kind of message we're being
 asked to produce</div></dd></dl></dd>
<dt class="decl">Logger <a class="symbol _variable" name="Logger.next" href="./htmlsrc/tango.util.log.Log.html#L528" kind="variable" beg="528" end="529">next</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.next" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L528">#</a></dt>
<dt class="decl">Logger <a class="symbol _variable" name="Logger.parent" href="./htmlsrc/tango.util.log.Log.html#L528" kind="variable" beg="528" end="529">parent</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.parent" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L528">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl"><a class="symbol _ctor" name="Logger.this" href="./htmlsrc/tango.util.log.Log.html#L545" kind="ctor" beg="545" end="551">this</a><span class="params">(Hierarchy <em>host</em>, char[] <em>name</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L545">#</a></dt>
<dd class="ddef">
<div class="summary">Construct a LoggerInstance with the specified name for the 
                given hierarchy. By default, logger instances are additive
                and are set to emit all events.</div></dd>
<dt class="decl"><a class="symbol _dtor" name="Logger.~this" href="./htmlsrc/tango.util.log.Log.html#L559" kind="dtor" beg="559" end="559">~this</a>(); <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.~this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L559">#</a></dt>
<dd class="ddef">
<div class="summary">No, you should not delete or 'scope' these entities</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Logger.enabled" href="./htmlsrc/tango.util.log.Log.html#L567" kind="function" beg="567" end="570">enabled</a><span class="params">(Level <em>level</em> = Level.Fatal)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.enabled" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L567">#</a></dt>
<dd class="ddef">
<div class="summary">Is this logger enabed for the specified Level?</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.trace" href="./htmlsrc/tango.util.log.Log.html#L578" kind="function" beg="578" end="581">trace</a><span class="params">(char[] <em>fmt</em>, ...)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.trace" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L578">#</a></dt>
<dd class="ddef">
<div class="summary">Append a trace message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.trace:2" href="./htmlsrc/tango.util.log.Log.html#L589" kind="function" beg="589" end="593">trace</a><span class="params">(lazy void <em>dg</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.trace:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L589">#</a></dt>
<dd class="ddef">
<div class="summary">Append a trace message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.info" href="./htmlsrc/tango.util.log.Log.html#L601" kind="function" beg="601" end="604">info</a><span class="params">(char[] <em>fmt</em>, ...)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.info" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L601">#</a></dt>
<dd class="ddef">
<div class="summary">Append an info message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.info:2" href="./htmlsrc/tango.util.log.Log.html#L612" kind="function" beg="612" end="616">info</a><span class="params">(lazy void <em>dg</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.info:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L612">#</a></dt>
<dd class="ddef">
<div class="summary">Append an info message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.warn" href="./htmlsrc/tango.util.log.Log.html#L624" kind="function" beg="624" end="627">warn</a><span class="params">(char[] <em>fmt</em>, ...)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.warn" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L624">#</a></dt>
<dd class="ddef">
<div class="summary">Append a warning message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.warn:2" href="./htmlsrc/tango.util.log.Log.html#L635" kind="function" beg="635" end="639">warn</a><span class="params">(lazy void <em>dg</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.warn:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L635">#</a></dt>
<dd class="ddef">
<div class="summary">Append a warning message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.error" href="./htmlsrc/tango.util.log.Log.html#L647" kind="function" beg="647" end="650">error</a><span class="params">(char[] <em>fmt</em>, ...)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.error" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L647">#</a></dt>
<dd class="ddef">
<div class="summary">Append an error message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.error:2" href="./htmlsrc/tango.util.log.Log.html#L658" kind="function" beg="658" end="662">error</a><span class="params">(lazy void <em>dg</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.error:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L658">#</a></dt>
<dd class="ddef">
<div class="summary">Append an error message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.fatal" href="./htmlsrc/tango.util.log.Log.html#L670" kind="function" beg="670" end="673">fatal</a><span class="params">(char[] <em>fmt</em>, ...)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.fatal" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L670">#</a></dt>
<dd class="ddef">
<div class="summary">Append a fatal message</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.fatal:2" href="./htmlsrc/tango.util.log.Log.html#L681" kind="function" beg="681" end="685">fatal</a><span class="params">(lazy void <em>dg</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.fatal:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L681">#</a></dt>
<dd class="ddef">
<div class="summary">Append a fatal message</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="Logger.name" href="./htmlsrc/tango.util.log.Log.html#L693" kind="function" beg="693" end="699">name</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L693">#</a></dt>
<dd class="ddef">
<div class="summary">Return the name of this Logger (sans the appended dot).</div></dd>
<dt class="decl">Level <a class="symbol _function" name="Logger.level" href="./htmlsrc/tango.util.log.Log.html#L707" kind="function" beg="707" end="710">level</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.level" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L707">#</a></dt>
<dd class="ddef">
<div class="summary">Return the Level this logger is set to</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Logger.level:2" href="./htmlsrc/tango.util.log.Log.html#L718" kind="function" beg="718" end="721">level</a><span class="params">(Level <em>l</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.level:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L718">#</a></dt>
<dd class="ddef">
<div class="summary">Set the current level for this logger (and only this logger).</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Logger.level:3" href="./htmlsrc/tango.util.log.Log.html#L730" kind="function" beg="730" end="738">level</a><span class="params">(Level <em>level</em>, bool <em>propagate</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.level:3" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L730">#</a></dt>
<dd class="ddef">
<div class="summary">Set the current level for this logger, and (optionally) all
                of its descendents.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Logger.additive" href="./htmlsrc/tango.util.log.Log.html#L747" kind="function" beg="747" end="750">additive</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.additive" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L747">#</a></dt>
<dd class="ddef">
<div class="summary">Is this logger additive? That is, should we walk ancestors
                looking for more appenders?</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Logger.additive:2" href="./htmlsrc/tango.util.log.Log.html#L758" kind="function" beg="758" end="762">additive</a><span class="params">(bool <em>enabled</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.additive:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L758">#</a></dt>
<dd class="ddef">
<div class="summary">Set the additive status of this logger. See bool additive().</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Logger.add" href="./htmlsrc/tango.util.log.Log.html#L772" kind="function" beg="772" end="778">add</a><span class="params">(Appender <em>another</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.add" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L772">#</a></dt>
<dd class="ddef">
<div class="summary">Add (another) appender to this logger. Appenders are each
                invoked for log events as they are produced. At most, one
                instance of each appender will be invoked.</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Logger.clear" href="./htmlsrc/tango.util.log.Log.html#L786" kind="function" beg="786" end="790">clear</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.clear" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L786">#</a></dt>
<dd class="ddef">
<div class="summary">Remove all appenders from this Logger</div></dd>
<dt class="decl">TimeSpan <a class="symbol _function" name="Logger.runtime" href="./htmlsrc/tango.util.log.Log.html#L798" kind="function" beg="798" end="801">runtime</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.runtime" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L798">#</a></dt>
<dd class="ddef">
<div class="summary">Get time since this application started</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Logger.append" href="./htmlsrc/tango.util.log.Log.html#L809" kind="function" beg="809" end="820">append</a><span class="params">(Level <em>level</em>, lazy char[] <em>exp</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.append" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L809">#</a></dt>
<dd class="ddef">
<div class="summary">Send a message to this logger via its appender list.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Logger.append:2" href="./htmlsrc/tango.util.log.Log.html#L828" kind="function" beg="828" end="853">append</a><span class="params">(LogEvent <em>event</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Logger.append:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L828">#</a></dt>
<dd class="ddef">
<div class="summary">Send a message to this logger via its appender list.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="Logger.format" href="./htmlsrc/tango.util.log.Log.html#L862" kind="function" beg="862" end="865">format</a><span class="params">(char[] <em>buffer</em>, char[] <em>formatStr</em>, ...)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.format" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L862">#</a></dt>
<dd class="ddef">
<div class="summary">Format text using the formatter configured in the associated
                hierarchy</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Logger.format:2" href="./htmlsrc/tango.util.log.Log.html#L874" kind="function" beg="874" end="883">format</a><span class="params">(Level <em>level</em>, char[] <em>fmt</em>, TypeInfo[] <em>types</em>, ArgList <em>args</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.format:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L874">#</a></dt>
<dd class="ddef">
<div class="summary">Format text using the formatter configured in the associated
                hierarchy.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Logger.isChildOf" href="./htmlsrc/tango.util.log.Log.html#L893" kind="function" beg="893" end="904">isChildOf</a><span class="params">(char[] <em>candidate</em>)</span>; <span class="attrs">[<span class="prot">private</span>, <span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.isChildOf" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L893">#</a></dt>
<dd class="ddef">
<div class="summary">See if the provided Logger name is a parent of this one. Note 
                that each Logger name has a '.' appended to the end, such that 
                name segments will not partially match.</div></dd>
<dt class="decl">bool <a class="symbol _function" name="Logger.isCloserAncestor" href="./htmlsrc/tango.util.log.Log.html#L914" kind="function" beg="914" end="922">isCloserAncestor</a><span class="params">(Logger <em>other</em>)</span>; <span class="attrs">[<span class="prot">private</span>, <span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Logger.isCloserAncestor" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L914">#</a></dt>
<dd class="ddef">
<div class="summary">See if the provided Logger is a better match as a parent of
                this one. This is used to restructure the hierarchy when a
                new logger instance is introduced</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Hierarchy" href="./htmlsrc/tango.util.log.Log.html#L938" kind="class" beg="938" end="1207">Hierarchy</a> : Logger.Context; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L938">#</a></dt>
<dd class="ddef">
<div class="summary">The Logger hierarchy implementation. We keep a reference to each
        logger in a hash-table for convenient lookup purposes, plus keep
        each logger linked to the others in an ordered group. Ordering
        places shortest names at the head and longest ones at the tail, 
        making the job of identifying ancestors easier in an orderly
        fashion. For example, when propagating levels across descendents
        it would be a mistake to propagate to a child before all of its
        ancestors were taken care of.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="Hierarchy.this" href="./htmlsrc/tango.util.log.Log.html#L953" kind="ctor" beg="953" end="961">this</a><span class="params">(char[] <em>name</em>)</span>; <a title="Permalink to this symbol" href="#Hierarchy.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L953">#</a></dt>
<dd class="ddef">
<div class="summary">Construct a hierarchy with the given name.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="Hierarchy.label" href="./htmlsrc/tango.util.log.Log.html#L967" kind="function" beg="967" end="970">label</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.label" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L967">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">bool <a class="symbol _function" name="Hierarchy.enabled" href="./htmlsrc/tango.util.log.Log.html#L977" kind="function" beg="977" end="980">enabled</a><span class="params">(Level <em>level</em>, Level <em>test</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.enabled" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L977">#</a></dt>
<dd class="ddef">
<div class="summary"></div></dd>
<dt class="decl">char[] <a class="symbol _function" name="Hierarchy.name" href="./htmlsrc/tango.util.log.Log.html#L988" kind="function" beg="988" end="991">name</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L988">#</a></dt>
<dd class="ddef">
<div class="summary">Return the name of this Hierarchy</div></dd>
<dt class="decl">void <a class="symbol _function" name="Hierarchy.name:2" href="./htmlsrc/tango.util.log.Log.html#L999" kind="function" beg="999" end="1002">name</a><span class="params">(char[] <em>name</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.name:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L999">#</a></dt>
<dd class="ddef">
<div class="summary">Set the name of this Hierarchy</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="Hierarchy.address" href="./htmlsrc/tango.util.log.Log.html#L1011" kind="function" beg="1011" end="1014">address</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.address" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1011">#</a></dt>
<dd class="ddef">
<div class="summary">Return the address of this Hierarchy. This is typically
                attached when sending events to remote monitors.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Hierarchy.address:2" href="./htmlsrc/tango.util.log.Log.html#L1023" kind="function" beg="1023" end="1026">address</a><span class="params">(char[] <em>address</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.address:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1023">#</a></dt>
<dd class="ddef">
<div class="summary">Set the address of this Hierarchy. The address is attached
                used when sending events to remote monitors.</div></dd>
<dt class="decl">Logger.Context <a class="symbol _function" name="Hierarchy.context" href="./htmlsrc/tango.util.log.Log.html#L1035" kind="function" beg="1035" end="1038">context</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.context" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1035">#</a></dt>
<dd class="ddef">
<div class="summary">Return the diagnostic context.  Useful for setting an 
                override logging level.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Hierarchy.context:2" href="./htmlsrc/tango.util.log.Log.html#L1048" kind="function" beg="1048" end="1051">context</a><span class="params">(Logger.Context <em>context</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.context:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1048">#</a></dt>
<dd class="ddef">
<div class="summary">Set the diagnostic context.  Not usually necessary, as a 
                default was created.  Useful when you need to provide a 
                different implementation, such as a ThreadLocal variant.</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Hierarchy.root" href="./htmlsrc/tango.util.log.Log.html#L1059" kind="function" beg="1059" end="1062">root</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.root" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1059">#</a></dt>
<dd class="ddef">
<div class="summary">Return the root node.</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Hierarchy.lookup" href="./htmlsrc/tango.util.log.Log.html#L1074" kind="function" beg="1074" end="1080">lookup</a><span class="params">(char[] <em>label</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.lookup" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1074">#</a></dt>
<dd class="ddef">
<div class="summary">Return the instance of a Logger with the provided label. If
                the instance does not exist, it is created at this time.</div>
Note that an empty label is considered illegal, and will be
                ignored.</dd>
<dt class="decl">int <a class="symbol _function" name="Hierarchy.opApply" href="./htmlsrc/tango.util.log.Log.html#L1088" kind="function" beg="1088" end="1096">opApply</a><span class="params">(int delegate(ref Logger) <em>dg</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.opApply" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1088">#</a></dt>
<dd class="ddef">
<div class="summary">traverse the set of configured loggers</div></dd>
<dt class="decl">Logger <a class="symbol _function" name="Hierarchy.inject" href="./htmlsrc/tango.util.log.Log.html#L1105" kind="function" beg="1105" end="1127">inject</a><span class="params">(char[] <em>label</em>, Logger delegate(char[] name) <em>dg</em>)</span>; <span class="attrs">[<span class="prot">private</span>, <span class="stc">synchronized</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.inject" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1105">#</a></dt>
<dd class="ddef">
<div class="summary">Return the instance of a Logger with the provided label. If
                the instance does not exist, it is created at this time.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Hierarchy.insert" href="./htmlsrc/tango.util.log.Log.html#L1140" kind="function" beg="1140" end="1168">insert</a><span class="params">(Logger <em>l</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.insert" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1140">#</a></dt>
<dd class="ddef">
<div class="summary">Loggers are maintained in a sorted linked-list. The order 
                is maintained such that the shortest name is at the root, 
                and the longest at the tail.</div>
This is done so that updateLoggers() will always have a
                known environment to manipulate, making it much faster.</dd>
<dt class="decl">void <a class="symbol _function" name="Hierarchy.update" href="./htmlsrc/tango.util.log.Log.html#L1179" kind="function" beg="1179" end="1183">update</a><span class="params">(Logger <em>changed</em>, bool <em>force</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.update" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1179">#</a></dt>
<dd class="ddef">
<div class="summary">Propagate hierarchical changes across known loggers. 
                This includes changes in the hierarchy itself, and to
                the various settings of child loggers with respect to 
                their parent(s).</div></dd>
<dt class="decl">void <a class="symbol _function" name="Hierarchy.propagate" href="./htmlsrc/tango.util.log.Log.html#L1193" kind="function" beg="1193" end="1206">propagate</a><span class="params">(Logger <em>logger</em>, Logger <em>changed</em>, bool <em>force</em>)</span>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#Hierarchy.propagate" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1193">#</a></dt>
<dd class="ddef">
<div class="summary">Propagate changes in the hierarchy downward to child Loggers.
                Note that while 'parent' and 'breakpoint' are always forced
                to update, the update of 'level' is selectable.</div></dd></dl></dd>
<dt class="decl">struct <a class="symbol _struct" name="LogEvent" href="./htmlsrc/tango.util.log.Log.html#L1223" kind="struct" beg="1223" end="1353">LogEvent</a>; <span class="attrs">[<span class="prot">private</span>]</span> <a title="Permalink to this symbol" href="#LogEvent" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1223">#</a></dt>
<dd class="ddef">
<div class="summary">Contains all information about a logging event, and is passed around
        between methods once it has been determined that the invoking logger
        is enabled for output.</div>
Note that Event instances are maintained in a freelist rather than
        being allocated each time, and they include a scratchpad area for
        EventLayout formatters to use.
<dl>
<dt class="decl">void <a class="symbol _function" name="LogEvent.set" href="./htmlsrc/tango.util.log.Log.html#L1237" kind="function" beg="1237" end="1244">set</a><span class="params">(Hierarchy <em>host</em>, Level <em>level</em>, char[] <em>msg</em>, char[] <em>name</em>)</span>; <a title="Permalink to this symbol" href="#LogEvent.set" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1237">#</a></dt>
<dd class="ddef">
<div class="summary">Set the various attributes of this event.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="LogEvent.toString" href="./htmlsrc/tango.util.log.Log.html#L1252" kind="function" beg="1252" end="1255">toString</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.toString" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1252">#</a></dt>
<dd class="ddef">
<div class="summary">Return the message attached to this event.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="LogEvent.name" href="./htmlsrc/tango.util.log.Log.html#L1263" kind="function" beg="1263" end="1266">name</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1263">#</a></dt>
<dd class="ddef">
<div class="summary">Return the name of the logger which produced this event</div></dd>
<dt class="decl">Level <a class="symbol _function" name="LogEvent.level" href="./htmlsrc/tango.util.log.Log.html#L1274" kind="function" beg="1274" end="1277">level</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.level" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1274">#</a></dt>
<dd class="ddef">
<div class="summary">Return the logger level of this event.</div></dd>
<dt class="decl">Hierarchy <a class="symbol _function" name="LogEvent.host" href="./htmlsrc/tango.util.log.Log.html#L1285" kind="function" beg="1285" end="1288">host</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.host" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1285">#</a></dt>
<dd class="ddef">
<div class="summary">Return the hierarchy where the event was produced from</div></dd>
<dt class="decl">TimeSpan <a class="symbol _function" name="LogEvent.span" href="./htmlsrc/tango.util.log.Log.html#L1297" kind="function" beg="1297" end="1300">span</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.span" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1297">#</a></dt>
<dd class="ddef">
<div class="summary">Return the time this event was produced, relative to the 
                start of this executable</div></dd>
<dt class="decl">Time <a class="symbol _function" name="LogEvent.time" href="./htmlsrc/tango.util.log.Log.html#L1308" kind="function" beg="1308" end="1311">time</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.time" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1308">#</a></dt>
<dd class="ddef">
<div class="summary">Return the time this event was produced relative to Epoch</div></dd>
<dt class="decl">Time <a class="symbol _function" name="LogEvent.started" href="./htmlsrc/tango.util.log.Log.html#L1319" kind="function" beg="1319" end="1322">started</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.started" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1319">#</a></dt>
<dd class="ddef">
<div class="summary">Return time when the executable started</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="LogEvent.levelName" href="./htmlsrc/tango.util.log.Log.html#L1330" kind="function" beg="1330" end="1333">levelName</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#LogEvent.levelName" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1330">#</a></dt>
<dd class="ddef">
<div class="summary">Return the logger level name of this event.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="LogEvent.toMilli" href="./htmlsrc/tango.util.log.Log.html#L1341" kind="function" beg="1341" end="1352">toMilli</a><span class="params">(char[] <em>s</em>, TimeSpan <em>time</em>)</span>; <span class="attrs">[<span class="stc">static</span>]</span> <a title="Permalink to this symbol" href="#LogEvent.toMilli" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1341">#</a></dt>
<dd class="ddef">
<div class="summary">Convert a time value (in milliseconds) to ascii</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="Appender" href="./htmlsrc/tango.util.log.Log.html#L1365" kind="class" beg="1365" end="1520">Appender</a>; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#Appender" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1365">#</a></dt>
<dd class="ddef">
<div class="summary">Base class for all Appenders. These objects are responsible for
        emitting messages sent to a particular logger. There may be more
        than one appender attached to any logger. The actual message is
        constructed by another class known as an EventLayout.</div>
<dl>
<dt class="decl">interface <a class="symbol _interface" name="Appender.Layout" href="./htmlsrc/tango.util.log.Log.html#L1382" kind="interface" beg="1382" end="1385">Layout</a>; <a title="Permalink to this symbol" href="#Appender.Layout" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1382">#</a></dt>
<dd class="ddef">
<div class="summary">Interface for all logging layout instances</div>
Implement this method to perform the formatting of  
                message content.
</dd>
<dt class="decl">Mask <a class="symbol _function" name="Appender.mask" href="./htmlsrc/tango.util.log.Log.html#L1395" kind="function" beg="1395" end="1395">mask</a><span class="params">()</span>; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#Appender.mask" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1395">#</a></dt>
<dd class="ddef">
<div class="summary">Return the mask used to identify this Appender. The mask
                is used to figure out whether an appender has already been 
                invoked for a particular logger.</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="Appender.name" href="./htmlsrc/tango.util.log.Log.html#L1403" kind="function" beg="1403" end="1403">name</a><span class="params">()</span>; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#Appender.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1403">#</a></dt>
<dd class="ddef">
<div class="summary">Return the name of this Appender.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Appender.append" href="./htmlsrc/tango.util.log.Log.html#L1411" kind="function" beg="1411" end="1411">append</a><span class="params">(LogEvent <em>event</em>)</span>; <span class="attrs">[<span class="stc">abstract</span>]</span> <a title="Permalink to this symbol" href="#Appender.append" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1411">#</a></dt>
<dd class="ddef">
<div class="summary">Append a message to the output.</div></dd>
<dt class="decl"><a class="symbol _ctor" name="Appender.this" href="./htmlsrc/tango.util.log.Log.html#L1419" kind="ctor" beg="1419" end="1422">this</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#Appender.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1419">#</a></dt>
<dd class="ddef">
<div class="summary">Create an Appender and default its layout to LayoutSimple.</div></dd>
<dt class="decl">static <a class="symbol _sctor" name="Appender.this:2" href="./htmlsrc/tango.util.log.Log.html#L1430" kind="sctor" beg="1430" end="1433">this</a>(); <a title="Permalink to this symbol" href="#Appender.this:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1430">#</a></dt>
<dd class="ddef">
<div class="summary">Create an Appender and default its layout to LayoutSimple.</div></dd>
<dt class="decl">Mask <a class="symbol _function" name="Appender.register" href="./htmlsrc/tango.util.log.Log.html#L1444" kind="function" beg="1444" end="1463">register</a><span class="params">(char[] <em>tag</em>)</span>; <span class="attrs">[<span class="prot">protected</span>]</span> <a title="Permalink to this symbol" href="#Appender.register" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1444">#</a></dt>
<dd class="ddef">
<div class="summary">Static method to return a mask for identifying the Appender.
                Each Appender class should have a unique fingerprint so that
                we can figure out which ones have been invoked for a given
                event. A bitmask is a simple an efficient way to do that.</div></dd>
<dt class="decl">void <a class="symbol _function" name="Appender.layout" href="./htmlsrc/tango.util.log.Log.html#L1472" kind="function" beg="1472" end="1475">layout</a><span class="params">(Layout <em>how</em>)</span>; <a title="Permalink to this symbol" href="#Appender.layout" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1472">#</a></dt>
<dd class="ddef">
<div class="summary">Set the current layout to be that of the argument, or the
                generic layout where the argument is null</div></dd>
<dt class="decl">Layout <a class="symbol _function" name="Appender.layout:2" href="./htmlsrc/tango.util.log.Log.html#L1483" kind="function" beg="1483" end="1486">layout</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#Appender.layout:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1483">#</a></dt>
<dd class="ddef">
<div class="summary">Return the current Layout</div></dd>
<dt class="decl">void <a class="symbol _function" name="Appender.next" href="./htmlsrc/tango.util.log.Log.html#L1494" kind="function" beg="1494" end="1497">next</a><span class="params">(Appender <em>appender</em>)</span>; <a title="Permalink to this symbol" href="#Appender.next" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1494">#</a></dt>
<dd class="ddef">
<div class="summary">Attach another appender to this one</div></dd>
<dt class="decl">Appender <a class="symbol _function" name="Appender.next:2" href="./htmlsrc/tango.util.log.Log.html#L1505" kind="function" beg="1505" end="1508">next</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#Appender.next:2" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1505">#</a></dt>
<dd class="ddef">
<div class="summary">Return the next appender in the list</div></dd>
<dt class="decl">void <a class="symbol _function" name="Appender.close" href="./htmlsrc/tango.util.log.Log.html#L1517" kind="function" beg="1517" end="1519">close</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#Appender.close" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1517">#</a></dt>
<dd class="ddef">
<div class="summary">Close this appender. This would be used for file, sockets, 
                and such like.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="AppendNull" href="./htmlsrc/tango.util.log.Log.html#L1530" kind="class" beg="1530" end="1578">AppendNull</a> : Appender; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AppendNull" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1530">#</a></dt>
<dd class="ddef">
<div class="summary">An appender that does nothing. This is useful for cutting and
        pasting, and for benchmarking the tango.log environment.</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="AppendNull.this" href="./htmlsrc/tango.util.log.Log.html#L1540" kind="ctor" beg="1540" end="1544">this</a><span class="params">(Layout <em>how</em> = null)</span>; <a title="Permalink to this symbol" href="#AppendNull.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1540">#</a></dt>
<dd class="ddef">
<div class="summary">Create with the given Layout</div></dd>
<dt class="decl">Mask <a class="symbol _function" name="AppendNull.mask" href="./htmlsrc/tango.util.log.Log.html#L1552" kind="function" beg="1552" end="1555">mask</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#AppendNull.mask" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1552">#</a></dt>
<dd class="ddef">
<div class="summary">Return the fingerprint for this class</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="AppendNull.name" href="./htmlsrc/tango.util.log.Log.html#L1563" kind="function" beg="1563" end="1566">name</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#AppendNull.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1563">#</a></dt>
<dd class="ddef">
<div class="summary">Return the name of this class</div></dd>
<dt class="decl">void <a class="symbol _function" name="AppendNull.append" href="./htmlsrc/tango.util.log.Log.html#L1574" kind="function" beg="1574" end="1577">append</a><span class="params">(LogEvent <em>event</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#AppendNull.append" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1574">#</a></dt>
<dd class="ddef">
<div class="summary">Append an event to the output.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="AppendStream" href="./htmlsrc/tango.util.log.Log.html#L1587" kind="class" beg="1587" end="1652">AppendStream</a> : Appender; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#AppendStream" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1587">#</a></dt>
<dd class="ddef">
<div class="summary">Append to a configured OutputStream</div>
<dl>
<dt class="decl"><a class="symbol _ctor" name="AppendStream.this" href="./htmlsrc/tango.util.log.Log.html#L1599" kind="ctor" beg="1599" end="1607">this</a><span class="params">(OutputStream <em>stream</em>, bool <em>flush</em> = false, Appender.Layout <em>how</em> = null)</span>; <a title="Permalink to this symbol" href="#AppendStream.this" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1599">#</a></dt>
<dd class="ddef">
<div class="summary">Create with the given stream and layout</div></dd>
<dt class="decl">Mask <a class="symbol _function" name="AppendStream.mask" href="./htmlsrc/tango.util.log.Log.html#L1615" kind="function" beg="1615" end="1618">mask</a><span class="params">()</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#AppendStream.mask" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1615">#</a></dt>
<dd class="ddef">
<div class="summary">Return the fingerprint for this class</div></dd>
<dt class="decl">char[] <a class="symbol _function" name="AppendStream.name" href="./htmlsrc/tango.util.log.Log.html#L1626" kind="function" beg="1626" end="1629">name</a><span class="params">()</span>; <a title="Permalink to this symbol" href="#AppendStream.name" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1626">#</a></dt>
<dd class="ddef">
<div class="summary">Return the name of this class</div></dd>
<dt class="decl">void <a class="symbol _function" name="AppendStream.append" href="./htmlsrc/tango.util.log.Log.html#L1637" kind="function" beg="1637" end="1651">append</a><span class="params">(LogEvent <em>event</em>)</span>; <span class="attrs">[<span class="stc">final</span>]</span> <a title="Permalink to this symbol" href="#AppendStream.append" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1637">#</a></dt>
<dd class="ddef">
<div class="summary">Append an event to the output.</div></dd></dl></dd>
<dt class="decl">class <a class="symbol _class" name="LayoutTimer" href="./htmlsrc/tango.util.log.Log.html#L1662" kind="class" beg="1662" end="1685">LayoutTimer</a> : Appender.Layout; <span class="attrs">[<span class="prot">public</span>]</span> <a title="Permalink to this symbol" href="#LayoutTimer" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1662">#</a></dt>
<dd class="ddef">
<div class="summary">A simple layout comprised only of time(ms), level, name, and message</div>
<dl>
<dt class="decl">void <a class="symbol _function" name="LayoutTimer.format" href="./htmlsrc/tango.util.log.Log.html#L1671" kind="function" beg="1671" end="1684">format</a><span class="params">(LogEvent <em>event</em>, void delegate(void[]) <em>dg</em>)</span>; <a title="Permalink to this symbol" href="#LayoutTimer.format" class="symlink">¶</a><a title="Go to the HTML source file" class="srclink" href="./htmlsrc/tango.util.log.Log.html#L1671">#</a></dt>
<dd class="ddef">
<div class="summary">Subclasses should implement this method to perform the
                formatting of the actual message content.</div></dd></dl></dd></dl>
</div>
<div id="footer">
  <p>Copyright (c) 2004 Kris Bell. All rights reserved</p>
  <p>Page generated by <a href="http://code.google.com/p/dil">dil</a> on Fri Dec 26 04:04:11 2008. Rendered by <a href="http://code.google.com/p/dil/wiki/Kandil">kandil</a>.</p>
</div>
</body>
</html>